demos: make alienplanet demo work on macOS OpenGL
authorChristian Hergert <chergert@redhat.com>
Thu, 3 Dec 2020 18:20:11 +0000 (10:20 -0800)
committerChristian Hergert <chergert@redhat.com>
Thu, 3 Dec 2020 18:23:13 +0000 (10:23 -0800)
On the macOS OpenGL implementation, the use of noise2 as a
function within the glsl shader collides with the builtin noise2 of a
different signature.

This changes the name to something similar (noize2) so that we
do not risk colliding names when linking.

With this commit, the shadertoy alienplanet demo works on mac
OpenGL (albeit still with the Cairo renderer).

demos/gtk-demo/alienplanet.glsl

index 3e3aea3ac81513154256c2f78be0a8077817d7ca..ad77fb15f42cf46760b2d2fb6d61b81de9ee01f2 100644 (file)
@@ -67,7 +67,7 @@ vec2 raySphere(vec3 ro, vec3 rd, vec4 sphere) {
   return vec2(t0, t1);
 }
 
-float noise1(vec2 p) {
+float noize1(vec2 p) {
   vec2 n = mod2(p, vec2(cellWidth));
   vec2 hh = hash(sqrt(2.0)*(n+1000.0));
   hh.x *= hh.y;
@@ -81,7 +81,7 @@ float noise1(vec2 p) {
   return h*0.25;
 }
 
-float noise2(vec2 p) {
+float noize2(vec2 p) {
   vec2 n = mod2(p, vec2(cellWidth));
   vec2 hh = hash(sqrt(2.0)*(n+1000.0));
   hh.x *= hh.y;
@@ -114,7 +114,7 @@ float height(vec2 p, float dd, int mx) {
   int i = 0;
 
   for (; i < 4;++i) {
-    float nn = a*noise2(p);
+    float nn = a*noize2(p);
     s += nn;
     d += abs(a);
     p += o;
@@ -130,7 +130,7 @@ float height(vec2 p, float dd, int mx) {
   mx = int(mix(float(4), float(mx), step(rdd, far)));
 
   for (; i < mx; ++i) {
-    float nn = a*noise1(p);
+    float nn = a*noize1(p);
     s += nn;
     d += abs(a);
     p += o;